/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package negocios;

import acceso_datos.NotificadorDB;
import datos.Notificador;
import exceptions.AlfanumericoException;
import exceptions.Alfanumero;
import exceptions.NotificadorException;
import exceptions.OperadorException;
import exceptions.SoloNumerosException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author miguesaca
 */
public class GestorNotificadores {
    private Notificador notificador;
    HashMap<String, Notificador> listaNotificador = new HashMap<String, Notificador>();
    private Alfanumero alfaNumero;
    public GestorNotificadores() throws SQLException {
         alfaNumero = new Alfanumero();
         cargarDatosLista();
    }

    public Notificador getNotificador() {
        return notificador;
    }

    public void setNotificador(Notificador notificador) {
        this.notificador = notificador;
    }
    public void cargarDatosLista() throws SQLException {
        //listaNotificador.put(notificador.getCedula(), notificador);
        
        NotificadorDB notificadorDB=new NotificadorDB();
        listaNotificador=notificadorDB.listar();
       // listaNotificador.put(notificador.getCedula(), notificador);
        
    }
    public void insertar(Notificador notificador) throws NotificadorException, AlfanumericoException, SQLException{
      alfaNumero.esCedula(notificador.getCedula());  
      if(listaNotificador.containsKey(notificador.getCedula()))
          throw new NotificadorException("Notificador Existente");
      this.notificador = notificador;
      
      NotificadorDB ndb=new NotificadorDB();
      ndb.grabar(notificador);
      listaNotificador.put(notificador.getCedula(), notificador);
      
  }
    public void modificar(Notificador operador) throws NotificadorException{
        buscar(operador.getCedula());
      this.notificador = operador;
      listaNotificador.put(operador.getCedula(), operador);
  }
    public Notificador buscar(String cedula)throws NotificadorException{
     if(listaNotificador.containsKey(cedula))
         return listaNotificador.get(cedula);
     throw new NotificadorException("Notificador no Existente");
     
 }
    public void eliminar(String cedula) throws NotificadorException{
     buscar(cedula);   
     listaNotificador.remove(cedula);
 }
    public DefaultTableModel tablaModelo() {
        Object nameColumns[] = { "cedula", "nombre", "apellido", "telefono", "direccion"};
        DefaultTableModel miTableModel = new DefaultTableModel(nameColumns, 0);
        for (Notificador value : listaNotificador.values()) {
            Object nuevaFila[] = { value.getCedula(), value.getNombre(), value.getApellido(), value.getTelefono(), value.getDireccion()};
            miTableModel.addRow(nuevaFila);
        }
        
        return miTableModel;
    }
}
